package com.java.udpsocket;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;

public class ServerThread extends Thread {
//属性
	private DatagramSocket ssocket;

	@Override
	public void run() {

		try {
			// 使用DatagramSocket初始化
			ssocket = new DatagramSocket(8855);
			while (true) {
				// 创建一个使用DatagramPacket的数组
				byte[] b1 = new byte[1024];
				DatagramPacket dp1 = new DatagramPacket(b1, b1.length);
				/**
				 * 服务器接收消息
				 */
				ssocket.receive(dp1);
				int len = dp1.getLength();
				// 将byte类型的数组转化为String类型输出
				String str1 = new String(b1, 0, len);
				System.out.println("服务器接收到的消息为：" + str1);

				/**
				 * 服务器发送消息
				 */
				// 将所要传输的消息上传到网络
				String str2 = "你好，我是服务端！";
				// 将需要发送的消息打包到DatagramPacket数据包中
				DatagramPacket dpSend = new DatagramPacket(str2.getBytes(), 0, str2.getBytes().length,
						dp1.getSocketAddress());
				// 使用DatagramSocket发送数据包到网络
				ssocket.send(dpSend);
				// 输出信息
				System.out.println("服务器发送到的消息为：" + str2);

			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}
